package com.taptech.doufu.util;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.Arrays;
import java.util.List;

/**
 * Created by Wyatt on 2017/10/12/012.
 */

public class GsonUtil {
    // 将Json数据解析成相应的映射对象
     public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
         Gson gson = new Gson();
        T result = gson.fromJson(jsonData, type);
         return result;
     }

     // 将Json数组解析成相应的映射对象列表
     // Q:类型转换不对，转换后取出对象属性报错
     public static <T> List<T> parseJsonArrayWithGson(String jsonData) {
         Gson gson = new Gson();
         List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {}.getType());
         return result;
     }

    /**
     * @author Wyatt
     * @param json
     * @param clazz
     * @return
     */
    public static <T> List<T> jsonToList(String json, Class<T[]> clazz)
    {
        Gson gson = new Gson();
        T[] array = gson.fromJson(json, clazz);
        return Arrays.asList(array);
    }
}
